const generateUUID = () => {
    var s = [];
    var hexDigits = "0123456789abcdef";
    for (var i = 0; i < 36; i++) {
        s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
    }
    s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
    s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
    s[8] = s[13] = s[18] = s[23] = "-";

    var uuid = s.join("");
    return uuid;
}

const formatTime = date => {
    const year = date.getFullYear()
    const month = date.getMonth() + 1
    const day = date.getDate()
    const hour = date.getHours()
    const minute = date.getMinutes()
    const second = date.getSeconds()

    return `${[year, month, day].map(formatNumber).join('/')} ${[hour, minute, second].map(formatNumber).join(':')}`
}

const formatDate = date => {
    const year = date.getFullYear()
    const month = date.getMonth() + 1
    const day = date.getDate()
    return `${[year, month, day].map(formatNumber).join('-')}`
}

const formatDateNoHasYear = date => {
    const month = date.getMonth() + 1
    const day = date.getDate()
    return `${[month, day].map(formatNumber).join('-')}`
}

const formatNumber = n => {
    n = n.toString()
    return n[1] ? n : `0${n}`
}

const showToast = (title, type = 'none') => {
    wx.showToast({
        title: title,
        icon: type,
        duration: 3000
    })
}

const showLoading = (text) => {
    wx.showLoading({
        title: text || '加载中',
        mask: true
    })
}

const hideLoading = () => {
    wx.hideLoading({
        success: (res) => {
        },
    })
}

const hasBtnRights = (rights) => {
    const btnRights = wx.getStorageSync('btnRights');
    return (rights || []).map(r => {
        return btnRights.indexOf(r) > -1;
    })
}

const validEffect = (content) => {
    return content != null && content != undefined;
}

const themeColor = '#f37b1d';

module.exports = {
    validEffect,
    generateUUID,
    themeColor,
    formatTime,
    formatDate,
    showToast,
    formatDateNoHasYear,
    showLoading,
    hideLoading,
    hasBtnRights
}
